how to detect shapes in opencv